<?php namespace app\admin\controller;

use houdunwang\request\Request;
use houdunwang\route\Controller;
use system\model\Category as CategoryModel;

class Category extends Common {


//    引用中间件控制这个控制器
    public function __construct()
    {
//        只能在这个控制器内的index方法内调用中间件
//        Middleware::set('auth', ['only' => ['index']]);
//        这个控制器内在index以外的的方法中调用index
//        Middleware::set('auth', ['except' => ['index']]);
//        设置中间件只有这个控制器可以被控制
//        Middleware::set('auth');

//        调用common控制器内的auth方法达到中间件控制控制器 ，达到阻止登陆的效果
        $this->auth();
    }

    //动作
    public function index(CategoryModel $category){
//获取所有数据
       $cateData= $category->getAllCate();
//        p($cateData);
//
//        分派变量到页面
        return view('',compact('cateData'));
//
    }
    public  function  post(CategoryModel $category){
        $cate_id = Request::get('cate_id',0,'intval');
        if(IS_POST){
//p($_POST);
         if($cate_id){
            //编辑
            $category = CategoryModel::find($cate_id);
        }
//            接收到post的数据
//            Request::post();
//            p(  Request::post());
            $category->save( Request::post());
            message('操作成功','index','success');
        }
//        获取数据，填写顶级栏目select数据
        $cateData = $category->getAllCate();






//        如果有cate_id获取旧数据
        if($cate_id){
//            获取数据为cid的那一条数据
            $oldData = CategoryModel::find($cate_id);
//            p($oldData);
            View::with('oldData',$oldData);

//            所属分类数据不能为自身或自己子孙
            $cateData = $category->getSonCateData($cate_id);

        }else{
            $cateData = $category->getAllCate();
        }


        View::with( 'cateData' , $cateData );
        return view();
    }

//    删除

    public function del(CategoryModel $category)
    {
        $cate_id = Request::get('cate_id');
        //执行删除
        if($category->del($cate_id)){
            return $this->setRedirect('index')->success('处理成功');
        }else{
            //$this->>error()，控制器error
            //$category->getError()  调用模型中getError方法，来获取错误信息
            return $this->error($category->getError());
        }

    }






}



